宣告多維陣列時,其維度是否相同分為下面兩種:規則陣列和不規則陣列
阿規則陣列又稱矩陣陣列,是屬於二維陣列,規則陣列是指每列的陣列元素都相同。
之前已經介紹過用法了,所以就不多說了
那我們來說說不規則陣列
C#提供一個建立特殊的二維陣列,陣列中的每一列長度可以不相同,稱為不規則陣列(Jagged Array)或稱非矩陣陣列。所謂的不規則陣列就是陣列中還可以存放陣列,每一列的長度不同,可以用來建立每列不同長度的表格。至於之前說的規則陣列,因為長度一致,所以可以用來建立一般表格。不規則陣列的語法如下:
資料型態[][] 陣列名稱 = new 資料型態[陣列大小][];
建立不規則陣列如下:
//先宣告一個不規則陣列。如宣告一個名為a的不規則陣列,此不規則陣列有3列
int[][] a = new int[3][];
//接著分別設定不規則陣列每列陣列的大小,如將第0、1、2列分別配置3、4、5個陣列元素
a[0] = new int[3];
a[1] = new int[4];
a[2] = new int[5];
經過上面宣告所建立的不規則陣列如下:
那我們來做個小練習,今天有3小組,第一組3個人,第二組4個人,第三組2個人,每個人成績平均如下,求各組平均成績和總平均為多少?
第一人 | 第二人 | 第三人 | 第四人 | |
---|---|---|---|---|
第一組 | 60 | 70 | 80 | - |
第二組 | 40 | 90 | 70 | 55 |
第三組 | 30 | 100 | - | - |
//建立不規則陣列
double[][] score = new double[3][];
//建立 score[0][0] ~ score[0][2] 陣列元素
score[0] = new double[] { 60, 70, 80 };
//建立 score[1][0] ~ score[2][3] 陣列元素
score[1] = new double[] { 40, 90, 70, 55 };
//建立 score[2][0] ~ score[2][1] 陣列元素
score[2] = new double[] { 30, 100 };
//建立 group[0] ~ group[2] 來存放各組的名稱
string[] group = new string[] { "第一組", "第二組", "第三組" };
//建立 average[0] ~ average[2] 來存放各組的平均成績
double[] average = new double[] { 0.0, 0.0, 0.0 };
//總平均成績
double total_average = 0, total = 0;
Console.WriteLine("\t第一人\t第二人\t第三人\t第四人");
for(int i = 0; i < score.Length; i++)
{
Console.Write(group[i]);
double sum = 0;
for(int j = 0; j < score[i].Length; j++)
{
//顯示各組的成績
Console.Write("\t{0}", score[i][j]);
//計算各組的平均成績
sum += score[i][j];
average[i] = sum / (j + 1);
}
//計算總平均成績
total += average[i];
total_average = total / (i + 1);
Console.WriteLine();
}
for(int i = 0; i < group.Length; i++)
Console.WriteLine("{0}平均成績:{1}分", group[i], average[i].ToString());
Console.WriteLine("總平均成績:{0}分", total_average.ToString());
今天就先到這邊為止啦~
掰掰